package org.ch02.job.test09;

import java.lang.reflect.Array;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;

/**
 * @author XCH
 * @date 2025 - 03 - 19
 */
public class MainTest {
    /*
    使用反射，创建一个学生类型的数组，存放二个学生，循环遍历输出，要求如下：
    1、第一个学生要求使用默认构造方法实例化并使用用 set 方法初始化对象

    2、第二个学生要求使用下面的构造方法实例化对象
        Student(String name,int age,Double score)
     */
    public static void main(String[] args) throws Exception{
        Student[] students = new Student[2];
        //默认构造方法实例化并使用用 set 方法初始化对象
        Student student1 = new Student();
        student1.setName("张三");
        student1.setAge(18);
        student1.setScore(90.0);
        students[0] = student1;
        //使用下面的构造方法实例化对象
        // 获取 Student 类的构造方法
        Class<?> studentClass = Student.class;
        Constructor<?> constructor = studentClass.getConstructor(String.class,int.class,Double.class) ;
        Student student2 = (Student) constructor.newInstance("李四", 20, 80.0);
        students[1] = student2;
        for (Student student : students) {
            System.out.println(student);
        }
    }
}
